『関数型デザイン 原則、パターン、実践』
https://gyazo.com/550a96ec3620bd7ec7da5fb25544cef0
2024/5/31
原著
本作では12章にて、関数型プログラミングでSOLIDの原則を再考するという試みがなされています。
やや批判的か
Javaと比較しながら解説する感じらしい
感想 (まだ途中)
あまり期待せずに読んでいる
悪くもないけど、別に良くもない
主張の如何というより、文章の書き方が相性悪いのかな
対象読者は入門者ではなさそう
手続き型、OOPにある程度親しんでないと理解できない話が多そう
序文
関数型言語の歴史とか、本の概要
第I部 関数型の基礎
第1章 不変性
関数型プログラミングとは「代入文のないプログラミング」のこと
「マイルストーンのプログラム」ってなんやねん
Kindle、めっちゃコード見づらいなmrsekut.icon
https://gyazo.com/f8d8c98e57941c031d8840f129d54a4c
適宜、ChatGPTに投げるなどするか
第2章 永続的データ
第3章 再帰と反復
再帰、再帰のmemorize
第4章 遅延
Clojureの遅延リスト
遅延リストを本物のリストに変換する?
遅延のデメリット
遅延があると、
何をする必要があるか、と、
どのぐらいする必要があるか
を切り離せる
第5章 ステートフル
Java, Clojure特有の話が多いなmrsekut.icon
第II部 比較分析
OOPとFPの比較
第I部が面倒になったらII部を併読しても良さそう
第6章 素因数分解
第7章 ボウリングゲーム
第8章 ゴシップ好きなバスの運転手
第9章 オブジェクト指向プログラミング
コードがやっぱ読みづらすぎるmrsekut.icon
Clojure慣れてない、かつ、このレイアウトはキツイ
ChatGPTに見やすくしてもらいつつ読んだ
せめてGitHubにコード載せてくれ〜〜〜
どの部分がPayroll.cljとPayrollImplementation.cljに相当するのか明示されていない
推測すればわかるが不親切すぎ
ただ、内容的には知りたかった箇所だ
こう書いてみると、TypeScriptにはAd Hoc Polymorphismがないので、理想的な構成をできないのがわかるmrsekut.icon
第10章 型
第III部 関数型デザイン
第11章 データフロー
第12章 SOLID
SOLIDを全て、関数型で説明
そこそこ章が長い
第IV部 関数型の実践
第13章 テスト
pbtとか
第14章 GUI
第15章 並行性
第V部 デザインパターン
第16章 デザインパターンの評価
この時点でKindleまだ64%だ
ここは読んでみてもいいかも
Abstract Server
Adapter
Command
Composite
Decorator
Visitor
Abstract Factory
第VI部 ケーススタディ
第17章 Wa-Tor
はやよみもまだしてない